When two or more programs run on a computer, these programs can interact with each other in various ways. Certain types of interactions can be considered incompatibilities, or conflicts, in the sense that they degrade system performance or stability, lead to security vulnerabilities, etc.
In some situations, the presence of conflicts among programs can be brought to a user's attention. For example, an application may alert the user that a particular plug-in or add-on that has been installed in the application is causing stability issues. Software that performs these types of compatibility checks tends to focus on improving the reliability of the program that is performing the check, but may not check for the presence of other programs that are mutually incompatible with each other. Also, these types of compatibility checks are generally performed with a pre-defined and unchangeable notion of what constitutes a conflict, and of how a user should be advised of such a conflict.